#include "jugador.h"
#include<iostream>

Jugador::Jugador()
{
}

void Jugador::girar(int grad){
   int n;
   char buffer[50];
   n=sprintf (buffer, "(turn %d)", grad);
   jug.enviar(buffer);
}


void Jugador::correr(int alfa){
    int n;
    char buffer[50];
    n=sprintf (buffer, "(dash %d)", alfa);
    jug.enviar(buffer);
}

void Jugador::conectar(int port, char* host){
    jug.conexion(port, host);
    jug.enviar("(init Grupo1)");

}

void Jugador::desconectar(){
    jug.enviar("(bye)");
}

void Jugador::mover(){
   int n;
   char buffer[50];
   n=sprintf (buffer, "(move %d %d)", posicion_x, posicion_y);
   jug.enviar(buffer);
}
void Jugador::chutar(int fuerza, float direccion){
   int n;
   char buffer[50];
   n=sprintf (buffer, "(kick %d %f)", fuerza, direccion);
   jug.enviar(buffer);
}

void Jugador::atrapar(float direccion){
   int n;
   char buffer[50];
   n=sprintf (buffer, "(catch %f)", direccion);
   jug.enviar(buffer);
}
void Jugador::setposicion(int x, int y){
   posicion_x=x;
   posicion_y=y;
}

void Jugador::getbalon(){
    cout<<"\n\n---GETBALL---\n\n";
    char cadena [500];
    int i=0,n=0,k=0;
    int espacios;
    char numero[8];
    int w;
    int found;


    strcpy(cadena,jug.recibir());
    string str(cadena);

    cout<<"MENSAJE: "<<cadena;

    found=str.find("ball");
    cout<<"\nfound: "<<found<<endl;
    if(found!=-1)
    {
                for(i=found+6, n=0, k=0, espacios=0; espacios<4; i++,n++)
                {
                    numero[n]=cadena[i];
                    if(cadena[i]==32||cadena[i]==')')
                    {
                        BALL[k]=atof(numero);
                        cout<<"\nParametro"<<k+1<<" = "<<BALL[k];
                        k++;
                        n=-1;
                        espacios++;
                        bzero(numero, 8);


                    }
                }
    }else cout<<"no ball";


    bzero(cadena,500);

}

char* Jugador::recibir(){
    return this->jug.recibir();
}


void Jugador::irabalon(){
    if(this->BALL[1]>5){
        this->girar(-3);
    }
    else if(this->BALL[1]<-5){
        this->girar(3);
    }
    if(this->BALL[0]>10){
        this->correr(100);
    }
    if(this->BALL[0]<=10){
        this->correr(20);
    }
}

void Jugador::avanzarbalon(){
    if(this->BALL[0]=0){
    10;
    }
    if(this->BALL[0]>0.7){
        this->correr(this->BALL[0]*5);
    }
    else{
        this->chutar(10,0);
    }
}
